package reportes;

import javax.swing.JPanel;
import java.awt.Frame;
import java.awt.BorderLayout;
import java.awt.Point;

import javax.swing.JDialog;
import java.awt.Dimension;
import javax.swing.JLabel;
import java.awt.Rectangle;
import com.toedter.calendar.JDateChooser;

import dominio.Contenedora;

import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import java.awt.Font;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.NumberFormatter;

import ui.consultas.UISeleccionarCliente;
import java.util.Date;

public class UIPidoFechasYCliente extends JDialog {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JLabel jLabel = null;

	private JLabel jLabel1 = null;

	private JDateChooser jdcfechadesde = null;

	private JDateChooser jdcfechahasta = null;

	private JButton btnaceptar = null;
	
	private java.util.Date fechadesde;  //  @jve:decl-index=0:
	private java.util.Date fechahasta;  //  @jve:decl-index=0:

	private JFormattedTextField txtidcliente = null;

	private JLabel lblnombre = null;

	private JLabel jLabel2 = null;
	
	private dominio.Cliente elCliente;  //  @jve:decl-index=0:

	private JButton jButton2 = null;

	public java.util.Date getFechadesde() {
		return fechadesde;
	}

	public void setFechadesde(java.util.Date fechadesde) {
		this.fechadesde = fechadesde;
	}

	public java.util.Date getFechahasta() {
		return fechahasta;
	}

	public void setFechahasta(java.util.Date fechahasta) {
		this.fechahasta = fechahasta;
	}

	/**
	 * @param owner
	 */
	public UIPidoFechasYCliente() {
		super();
		initialize();
		jdcfechadesde.setDate(new Date());
		jdcfechahasta.setDate(new Date());
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(320, 175);
		this.setTitle("Seleccionar Fechas");
		this.setContentPane(getJContentPane());
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jLabel2 = new JLabel();
			jLabel2.setBounds(new Rectangle(11, 67, 43, 15));
			jLabel2.setText("Ciente:");
			jLabel2.setFont(new Font("Dialog", Font.BOLD, 12));
			lblnombre = new JLabel();
			lblnombre.setBounds(new Rectangle(67, 85, 191, 23));
			lblnombre.setText("");
			lblnombre.setFont(new Font("Dialog", Font.BOLD, 12));
			jLabel1 = new JLabel();
			jLabel1.setBounds(new Rectangle(135, 12, 49, 15));
			jLabel1.setText("Hasta:");
			jLabel = new JLabel();
			jLabel.setBounds(new Rectangle(10, 12, 55, 15));
			jLabel.setText("Desde:");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(jLabel, null);
			jContentPane.add(jLabel1, null);
			jContentPane.add(getJdcfechadesde(), null);
			jContentPane.add(getJdcfechahasta(), null);
			jContentPane.add(getBtnaceptar(), null);
			jContentPane.add(getTxtidcliente(), null);
			jContentPane.add(lblnombre, null);
			jContentPane.add(jLabel2, null);
			jContentPane.add(getJButton2(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes jdcfechadesde	
	 * 	
	 * @return com.toedter.calendar.JDateChooser	
	 */
	private JDateChooser getJdcfechadesde() {
		if (jdcfechadesde == null) {
			jdcfechadesde = new JDateChooser();
			jdcfechadesde.setBounds(new Rectangle(8, 29, 95, 21));
			jdcfechadesde.setDateFormatString("dd/MM/yyyy");
		}
		return jdcfechadesde;
	}

	/**
	 * This method initializes jdcfechahasta	
	 * 	
	 * @return com.toedter.calendar.JDateChooser	
	 */
	private JDateChooser getJdcfechahasta() {
		if (jdcfechahasta == null) {
			jdcfechahasta = new JDateChooser();
			jdcfechahasta.setBounds(new Rectangle(133, 29, 110, 21));
			jdcfechahasta.setDateFormatString("dd/MM/yyyy");
		}
		return jdcfechahasta;
	}

	/**
	 * This method initializes btnaceptar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtnaceptar() {
		if (btnaceptar == null) {
			btnaceptar = new JButton();
			btnaceptar.setBounds(new Rectangle(76, 118, 94, 22));
			btnaceptar.setText("Aceptar");
			btnaceptar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					fechadesde = jdcfechadesde.getDate();
					fechahasta = jdcfechahasta.getDate();
					buscarcliente();
					if((fechadesde.equals(fechahasta) | fechahasta.after(fechadesde))){
						hide();
					}
				}
			});
		}
		return btnaceptar;
	}

	/**
	 * This method initializes txtidcliente	
	 * 	
	 * @return javax.swing.JFormattedTextField	
	 */
	private JFormattedTextField getTxtidcliente() {
		if (txtidcliente == null) {
			NumberFormatter numberFormatter = new NumberFormatter();
			numberFormatter.setAllowsInvalid(false);
			DefaultFormatterFactory defaultFormatterFactory1 = new DefaultFormatterFactory();
			defaultFormatterFactory1.setDefaultFormatter(numberFormatter);
			txtidcliente = new JFormattedTextField();
			txtidcliente.setBounds(new Rectangle(11, 86, 47, 21));
			txtidcliente.setFormatterFactory(defaultFormatterFactory1);
			txtidcliente.setFont(new Font("SansSerif", Font.BOLD, 12));
			txtidcliente.addKeyListener(new java.awt.event.KeyAdapter() {
				public void keyTyped(java.awt.event.KeyEvent e) {
					if(e.getKeyChar() == "\n".toCharArray()[0]){
						buscarcliente();
					}
				}
			});
			txtidcliente.addFocusListener(new java.awt.event.FocusAdapter() {
				public void focusLost(java.awt.event.FocusEvent e) {
						buscarcliente();
				}
			});
		}
		return txtidcliente;
	}

	public void buscarcliente(){
		try{
			elCliente = Contenedora.getInstancia().clienteXID(Integer.parseInt(txtidcliente.getText()));
			if (elCliente != null){
				lblnombre.setText(elCliente.getNombre());
			}
		}catch(Exception e){
			
		}
	}
	
	/**
	 * This method initializes jButton2	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton2() {
		if (jButton2 == null) {
			jButton2 = new JButton();
			jButton2.setBounds(new Rectangle(264, 85, 44, 23));
			jButton2.setText("...");
			jButton2.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					UISeleccionarCliente seleccionarCliente = new UISeleccionarCliente();
					seleccionarCliente.setModal(true);
					Dimension dim = seleccionarCliente.getSize();
					Dimension bigDim = getSize();
					Point loc = getLocation();
					int xPos = ((int)bigDim.getWidth() - (int)dim.getWidth()) / 2;
					int yPos = ((int)bigDim.getHeight() - (int)dim.getHeight()) / 2;
					seleccionarCliente.setLocation((int)loc.getX() + xPos, (int)loc.getY() + yPos);
					seleccionarCliente.setVisible(true);
					elCliente = seleccionarCliente.getEsteCliente();
					seleccionarCliente.dispose();
					if(elCliente!=null){
						txtidcliente.setText(Integer.toString(elCliente.getId()));
						lblnombre.setText(elCliente.getNombre());
					}
				}
			});
		}
		return jButton2;
	}

	public dominio.Cliente getElCliente() {
		return elCliente;
	}

	public void setElCliente(dominio.Cliente elCliente) {
		this.elCliente = elCliente;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"
